#ifndef __DoubleLinkList_H_
#define __DoubleLinkList_H_
#define ElementType int

typedef struct Node
{
    ElementType data;
    struct Node *next;
    struct Node *prev;
}Node;

typedef struct DoubleLinkList
{
    Node *head;
    Node *tail;
    int len;
}DLinkList;
int InitDLinkList(DLinkList *list);
void InsertTail(DLinkList *list,ElementType element);
void InsertHead(DLinkList *list,ElementType element);
int FindFirstByElement(DLinkList *list,ElementType element);
void RemoveByIndex(DLinkList *list,int index);
void RemoveByElement(DLinkList *list,ElementType element);
void Travel(DLinkList *list);
void FreeDLinkList(DLinkList *list);












#endif